Electronic devices, such as mobile phones and personal digital assistants (PDAs), often contain firmware and application software either provided by the manufacturer of the electronic devices, by telecommunication carriers, or by third parties. The firmware and application software often contain software bugs. New versions of the firmware and software are periodically released to fix the bugs or to introduce new features, or both.
SyncML, founded in February 2000, is an open industry standard for a common data synchronization protocol that facilitates the transport of network data and personal information across multiple networks, platforms and devices. Ericsson, IBM, Lotus, Matsushita, Motorola, Nokia, Starfish Software, Symbian, and Openwave sponsor the SyncML standard.
The SyncML standard was originally created to enable end users to seamlessly synchronize any type or format of network data with any mobile device. Since the creation of the data synchronization specification, the standards body has also developed the DM specification, which leverages the original specification. The two specifications are designed to be independent of the mobile device, network, and applications. For this purpose SyncML utilizes Extensible Markup Language (XML) technology.
The first specification to evolve from the SyncML initiative was centered on synchronization of networked information to a mobile device. The goal of the common synchronization protocol was to solve the problem of multiple proprietary data synchronization protocols that limited the use and availability of data. The data synchronization specification enables any networked data to work with any mobile device. For example, an end user could access personal information, such as an address book, from a handheld or PDA and the data would be accessible and current.
Synchronization has different semantics when applied to firmware updates. For example, generic synchronization attempts to make an instance of data that looks like X into an instance of data that looks like X′ (X-prime), and vice versa, without regard to the availability of various other versions of the same data, such as X″ (X-prime-prime), etc. Firmware updates, in general, require the specification of what the target version should be.
In addition, firmware updates differ from synchronization in that the carrier-side or server-side does not have an entity that is a firmware—it only contains data that may be generated/translated into a firmware.
The second specification from the SyncML initiative revolves around the remote management of mobile devices, or device management (DM). Device management is the generic term used for technology that allows third parties to carry out the procedures of configuring mobile devices on behalf of the end user. SyncML defines device management as a technology that enables customization, personalization, and servicing of personal devices.
The DM specification proposes that future releases will facilitate software distribution, parameter configuration, and device capability verification. According to the SyncML White Paper, the planned device management scope includes device configuration (e.g. modifying or reading operating parameters), software maintenance (e.g. reading from a device its current operating parameters, reading a list installed or running software, hardware configurations), and diagnostics (e.g. listening for alerts sent from a device, invoking local diagnostics on a device).
The initial specification for the device management standard was released in February 2002. That release describes, from a high level, the protocol, component description, management frameworks, and security involved with the device management process. The DM specification has alluded to the fact that one of the future features would be the capability to download software. Details of the “software download” process were not included in the latest specification, but the download specification is projected to be completed in 2003. The standard does not specify formats of or methods to create update packages (encoded information of modifications to firmware/software necessary for upgrading to a new or modified version of the firmware/software) or how to apply the updates within the device. It mainly deals with management of the meta-data and the process around it. As with the aforementioned data synchronization protocol, the DM protocol will be open, and network and device agnostic.
SyncML has been promoted by the wireless industry as a solution for data transfers between mobile handsets and service providers. Although flexible, the current SyncML DM specifications do not yet provide support for firmware updates.
There is a fundamental problem in supporting firmware updates employing SyncML DM-based software. There is no support in SyncML DM for firmware updates, as there are no commands or request structure that support setting of firmware version change indicators, power cycling, authentication/verification of software packages or firmware updates received, etc. In addition, the ability to request a software/firmware update in terms of source and target versions is essential but not currently supported in SyncML DM. Specifically, the semantics of retrieving a firmware update from a server on a carrier network is different from that of acquiring/retrieving generic data or content from a web site, and SyncML DM does not currently support these special semantics.
There is a fundamental asymmetry introduced into the client and server-sides of any SyncML-based solutions. Any “power cycling” command (needed to reinitialize a handset) that may be introduced into SyncML may apply only to the client-side, with SyncML core (or engines) on the server-sides configured to ignore such commands. In addition, any requests to update firmware may be restricted to the client-side.
Recent versions of SyncML DM do not have commands exclusively aimed at one side or the other, i.e. a command that is restricted to the client-side alone or the server-side alone. The SyncML DM management client may be a combination of a Download Agent with a security service and a resource manager that manages a tree of managed objects.
SyncML DM does not yet provide Update Agent (an agent for applying firmware updates in an electronic device) capabilities; it provides support for executing commands on the client-side. Such commands may include commands to Add, Copy, Delete, Exec, Get, Sequence, etc. that may be used to manipulate managed objects. Therefore, management objects may be added, copied, deleted, replaced, etc.
The SyncML management client may process XML, execute commands and transfer data. A SyncML DM client may comprise an XML parser that may employ SyncML DM elements and commands; an “engine” that may execute commands based on data retrieved from SyncML (XML) content; a tree or registry of management objects that may be targets of commands executed by the engine; and a data transport layer that may be based on one of Hyper Text Transfer Protocol (HTTP), Object Exchange (OBEX), Wireless Session Protocol (WSP), etc.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention.